1.灰度拉伸
有两种
线性拉伸:将灰度范围线性扩展
非线性拉伸:将感兴趣的灰度范围线性扩展,相对抑制不感兴趣的灰度区域
1.1 效果
线性点运算作用:
当图象成像时曝光不足或过度,
成像设备的非线性
图像记录设备动态范围太窄等原因,都会产生对比度不足的弊病,使图像中的细节分辨不清。这时可通过点运算将灰度范围线性扩展.
1.2 原理
1.2.1 线性拉伸
即进行线性点运算,输出灰度级与输入灰度级呈线性关系的点运算:
其中,
代表的是二维图像上的灰度值
代表的是拉伸后二维图像上的灰度值
是线性方程的系数
是线性方程的截距
很自然需要分情况讨论, 、
、 和 以及 、 和
当时,输出图像的暗区域将变亮,亮区域将变暗,反色效果
注意如果,反色后还是有压缩对比度效果
从直方图角度看,直方图的柱子在x轴下方了
当时,输出图像的对比度减小,压缩对比度
适用于原图灰度的动态范围太大的情况
从直方图角度看,直方图的柱子群分布范围变窄了,但是直方图的形状压缩...
1.前言
家里宽带有公网,不能浪费了,做了一个家庭服务器。
但是公网ip是动态的,每48小时变动一次,故采用ddns方式将ip绑定到域名上,然后就可以动态更新。
之前是使用路由器的ddns功能的,但是不知道为什么老是不能自动更新,所以直接自己利用一个Github上的的一个shell脚本来实现定时更新。
2.开启ssh服务
路由器web管理界面
高级设置 - 系统管理 - 服务 -
终端服务 - 启用 SSH 服务 - 是
然后使用ssh工具连接,用户名admin、密码应该是登录web管理界面时的密码。
3.下载脚本
GitHub项目地址:https://github.com/rehiy/dnspod-shell
直接下载到本地,文本方式打开ardnspod文件,追加内容如下:
12arToken=yourDnsPodToken arDdnsCheck yourDomain subDomain
上传到路由器,记住文件位置
然后在ssh终端执行:
cd yourFilePath
给予运行权限chmod +x ./ardnspod
手动执行...
《软件工程导论》实验&期末考试 知识点整理
1. 用例图
用例:用户功能性的需求
1.1 用例图三种关系
包含关系 include
扩展关系 extend
泛化关系
知乎偷了一个图:
!!注意!!:扩展关系、泛化关系是由子用例指向父(基)用例
1.1.1 包含关系 include
父用例的发生依赖于所有包含关系的子用例执行
例子:
图中的用例查询书籍信息和用例查询外借信息为包含关系,且箭头指向查询外借信息。故当执行用例查询书籍信息时必然要执行用例查询外借信息。
也可以认为用例查询书籍信息可以拆分为几个包含关系的小用例执行。
1.1.2 扩展关系 extend
父用例发生,扩展关系的子用例可以发生也可以不发生(即子用例的发生与否是可选的、有条件的)
例子: 还是这张图
图中的用例查询书籍信息和用例修改书籍信息为扩展关系,且箭头指向查询书籍信息。故当执行用例查询书籍信息时,用例修改书籍信息可以发生也可以不发生。
换句话说,查询书籍信息时不一定就要修改书籍信息,但是一定要查询外借信息。
1.1.3 泛化关系
和面向对象...
0. 几种优化算法关系
1. 梯度法(Gradient Descent)
1.1 原理
目标函数的梯度:
梯度法基于目标函数的梯度信息进行迭代优化。对于目标函数 ,梯度 表示了函数在某点
处的变化率和变化方向。梯度的方向是函数增长最快的方向,而梯度的负方向则是函数下降最快的方向。
迭代更新规则:
梯度法通过迭代更新当前解
的值,使其朝着目标函数下降的方向移动。更新规则通常如下所示:
其中, 是第 步的解, 是下一步的解,
是学习率(也称为步长,为一个常数),控制了每一步迭代中移动的距离。
梯度法实际上是一个最朴素的算法,是后续很多算法的基石
1.2 算法步骤
初始化参数:选择合适的初始参数值
计算梯度:计算目标函数关于参数的梯度 。
更新参数:根据梯度的反方向调整参数值,更新参数
,以减小目标函数的值。更新规则为:
其中,
是学习率(步长),控制参数更新的幅度。
收敛判断:判断是否满足停止条件,例如达到最大迭代次数、目标函数值变化小于阈值等。
迭代:若未满足停止条件,则重复步骤
2-4,直到满足停止条件为...
1.直接搜索
1.1 黄金分割法
1.1.1 基本信息
适用范围:单峰函数求极小值问题
特点:
迭代逼近极小值点:
黄金分割法通过不断地迭代,在每一步中缩小搜索区间,以逼近极小值点。每次迭代都会根据黄金比例将当前搜索区间分成两部分,并选择较小函数值所在的部分进行下一步的搜索。
不依赖梯度信息:
与梯度下降方法不同,黄金分割法不需要函数的梯度信息。它是一种无梯度的优化方法,适用于那些无法或难以求得梯度信息的问题。
基本原理:
黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,
a2,并计算其函数值。
a1,
a2将区间分成三段,应用函数的单峰性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,搜索区间无限缩小,从而得到极小点的数值近似解。
1.1.2 算法流程
初始化:
计算内部点:
黄金比例:
计算函数值:
选择新区间:
如果否则
如果否则
收敛判断:
如果满足停止迭代条件,则停止迭代;否则,增...
经典的WordCount程序源码如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071package cn.edu.ecnu.spark.example.java.wordcount;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.api.java.function.*;import scala.Tuple2;import java.util.Arrays;import java.util.Iterator;public cla...
1.修改配置文件
1.1 修改.bashrc文件
客户端执行:
vi ~/.bashrc
按i进入编辑模式,按方向键到文件最后一行,输入export TERM=xterm-color
按Esc键退出编辑模式,输入:wq保存退出
使.bashrc配置生效:source ~/.bashrc
1.2 下载 spark
在主节点执行:
启动HDFS服务(已经启动直接下一步):~/hadoop-2.10.1/sbin/start-dfs.sh
下载Spark安装包:wget http://archive.apache.org/dist/spark/spark-2.4.7/spark-2.4.7-bin-without-hadoop.tgz
解压安装包:tar -zxvf spark-2.4.7-bin-without-hadoop.tgz
改名:mv ~/spark-2.4.7-bin-without-hadoop ~/spark-2.4.7
上述步骤完成后:
1.3 修改配置
在主节点执行以下修改:
1.3.1 spark-e...
请确保已经完成1
1.下载
地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
在主节点上执行:
下载:wget https://archive.apache.org/dist/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
解压:tar -zxvf hadoop-2.10.1.tar.gz
进入文件夹:cd ~/hadoop-2.10.1/
查看下载软件的版本:./bin/hadoop version
2.修改配置
2.1 修改slaves
在主节点上执行:
修改 slaves 文件:
vim ~/hadoop-2.10.1/etc/hadoop/slaves
修改为: 12ecnu02ecnu03
2.2 修改core-site
修改 core-site.xml:
vim ~/hadoop-2.10.1/etc/hadoop/core-site....
如果不熟悉Linux命令行就不要看了
1.互联互通
在哥们(hhh)的帮助下,搞到四台阿里云服务器,不过挺寒碜的配置:
编号
IP
用户名
密码
系统配置
备注
1
8.219.xx0.46
root
----
Ubuntu 22.04 | 2vCPU/4GiB
主节点
2
4x.236.2x.161
root
----
Ubuntu 22.04 | 2vCPU/1GiB
从节点
3
4x.236.15x.1x2
root
----
Ubuntu 22.04 | 2vCPU/2GiB
从节点
4
47.2x6.x15.x57
root
----
Ubuntu 22.04 | 2vCPU/1GiB
客户端
1.1 创建用户
写了一个shell脚本,在四台服务器上创建用户dase-dis(注意确保四台服务器的用户名和密码一致才可以使用):
先sudo apt install sshpass,在Linux下执行脚本:
1...